package com.boilermaker.lotterysystem.service.statusconvert.operator;

import com.boilermaker.lotterysystem.service.dto.ConvertStatusDTO;
import org.springframework.stereotype.Component;

/**
 * 抽象状态转换器。继承该抽象类以实现具体某状态的转换。
 */
@Component
public abstract class AbstractStatusOperator {

    /**
     * 转换序号。描述该状态转换器处于责任链的位置。
     */
    public abstract Integer sequence();

    /**
     * 转换策略。描述该状态转换器生效的时机。
     */
    public abstract Boolean convertPolicy(ConvertStatusDTO convertStatusDTO);

    /**
     * 转换。真正更新数据库表中的相应状态。
     */
    public abstract Boolean convert(ConvertStatusDTO convertStatusDTO);
}
